package situ.autoweter.service.impl;
import java.util.List;
import java.util.Map;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSONObject;
import situ.autoweter.entity.IvInvoice;
import situ.autoweter.service.PyPayService;
import situ.autoweter.dao.PyPayDao;
import situ.autoweter.common.Assist;
import situ.autoweter.entity.PyPay;
/**
 * PyPay的服务接口的实现类
 * 
 * @author 
 *
 */
@Service
public class PyPayServiceImpl implements PyPayService {
	private final Logger LOG = LogManager.getLogger(this.getClass());

	@Autowired
	private PyPayDao pyPayDao;
	// TODO 当你看到这个方法时你应该创建一个工具类做通用的方法,定义自己的返回格式化
	private static final int C200 = 200;
	private static final int C412 = 412;

	public String resultFormat(int code, Object data) {
		JSONObject result = new JSONObject();
		result.put("code", code);
		if (data != null) {
			result.put("data", data);
		}
		return result.toJSONString();
	}

	@Override
	public List<PyPay> find(PyPay value) {
		//TODO这里可以做通过Assist做添加查询
		List<PyPay> result = pyPayDao.selectPyPay(null);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行获取PyPay数据集-->结果:", result);
		}
		return result;
	}

	@Override
	public PyPay findOne(String id) {
		if (id == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行通过PyPay的id获得PyPay对象-->失败:id不能为空");
			}
			return null;
		}
		PyPay result = pyPayDao.selectPyPayById(id);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行通过PyPay的id获得PyPay对象-->结果:", result);
		}
		return result;
	}

	@Override
	public String saveNotNull(PyPay value) {
		if (value == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行将PyPay中属性值不为null的数据保存到数据库-->失败:对象不能为空");
			}
			return resultFormat(C412, null);
		}
		int result = pyPayDao.insertNotNullPyPay(value);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行将PyPay中属性值不为null的数据保存到数据库-->结果:", result);
		}
		return resultFormat(C200, result);
	}

	@Override
	public String updateNotNullById(PyPay value) {
		if (value == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行通过PyPay的id更新PyPay中属性不为null的数据-->失败:对象为null");
			}
			return resultFormat(C412, null);
		}
		int result = pyPayDao.updateNotNullPyPayById(value);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行通过PyPay的id更新PyPay中属性不为null的数据-->结果:", result);
		}
		return resultFormat(C200, result);
	}

	@Override
	public String deleteById(String id) {
		if (id == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行通过PyPay的id删除PyPay-->失败:id不能为空");
			}
			return resultFormat(C412, null);
		}
		int result = pyPayDao.deletePyPayById(id);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行通过PyPay的id删除PyPay-->结果:", result);
		}
		return resultFormat(C200, result);
	}
	//超人易的方法
	@Override
	public List<Map> querymoney() {
		return pyPayDao.querymoney();
	}

	@Override
	public PyPay moneyAll() {
		return pyPayDao.moneyAll();
	}


	//循环数据库收费人员
	@Override
	public List<Map> querySF(){
		return pyPayDao.querySF();
	}
	//根据编码和收费人员查询
	@Override
	public List<Map> querybyBM(String userno,String name){
		List<Map> list=pyPayDao.querybyBM(userno,name);
		return list;
	}





	@Override
	public List<Map> showAll() {
		List<Map> list=pyPayDao.Show();
		return list;
	}

	@Override
	public void Update(Integer[] id) {
		pyPayDao.Update(id);
	}

	@Override
	public List<Map> find(IvInvoice ivInvoice) {
		List<Map> list=pyPayDao.find(ivInvoice);
		return list;
	}

}